<?php 
/**
 * 百融信用风险罗盘
 * 
 * 2018-03-01
 * 
 */

namespace Org\Util;

class HundredCredit
{
	// api登录地址(测试)
	// private $loginUrl = 'https://sandbox-api.100credit.cn/bankServer2/user/login.action';
	// api登录地址(生产)
	private $loginUrl = 'https://api.100credit.cn/bankServer2/user/login.action';
	// 登录时间
	private $loginTime = 0;
	// 测试API帐户名
	private $account = '';
	// 测试密码
	private $password = '';
	// 测试 APICODE
	private $apicode = '';
	// token
	private $token = '';
	// 画像 API 测试地址 
	// private $huaxiang = 'https://sandbox-api.100credit.cn/bankServer2/data/terData.action';
    // 画像 API 正式地址 
	private $huaxiang = 'https://api.100credit.cn/huaxiang/v1/get_report';
	// 海纳 API 测试地址 
	// private $haina = 'https://sandbox-api.100credit.cn/HainaApi/data/getData.action';
	// 海纳 API 正式地址 
	private $haina = 'https://api.100credit.cn/HainaApi/data/getData.action';
	// 整合 API 测试地址 
	// private $trinity_force = 'https://sandbox-api.100credit.cn/trinity_force/v1/get_data';
	//整合 API 正式地址 
	private $trinity_force = 'https://api.100credit.cn/trinity_force/v1/get_data';
	// 校验码
	private $checkcode = '';

	public function __construct()
	{
		$this->account  = C('BRACCESSKEYNUMBER');
		$this->password = C('BRACCESSKEYSECRET');
		$this->apicode  = C('BRAPICODE');
	}

	/**
	 * API登录
	 */
	public function login()
	{
		$data_post = [
			'userName'=>$this->account,
			'password'=>$this->password,
			'apiCode'=>$this->apicode,
		];
		$result = $this->vpost($this->loginUrl, ($data_post),'array');
		if($result['code']!='00'){
			return ['success'=>false,'error'=>$result['code'],'message'=>$this->errorNumber($result['code'])];
		}
		$time = time();
		$this->token = $result['tokenid'];
		$this->checkcode = md5($this->apicode.$result['tokenid']);
		$this->loginTime = $time;
		return ['success'=>true,'message'=>'登录成功！','token'=>$result['tokenid']];
	}

	/**
	 * 登录验证
	 */
	public function islogin()
	{
		$loginTime = $this->loginTime;
		$tokenstr = $this->token;
		$time = time();
		$outtime = $time - $loginTime;
		if($outtime>60*60){
			$result_log = $this->login();
			if($result_log['success']){
				return true;
			}else{
				return $result_log;
			}
		}
		if(isset($tokenstr)&&!empty($tokenstr)){
			return true;
		}else{
			$result_log = $this->login();
			if($result_log['success']){
				return true;
			}else{
				return $result_log;
			}
		}
	}

	/**
	 * 特殊名单验证
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @param String $linkmanCell 联系人手机号  1.兼容字符串形式，此形式仅能传1个手机号，例："15901110000" ，2.支持数组形式，例：“[15901110000,15901110000,15901110000]”（支持最多输入3个手机号）
	 * @param String $timeRange 时间范围 取值：1-5，单位：年；填入相应数字表示查询最近几年的特殊名单服务，未填或填入其它数字表示默认查询5年
	 * @return Array 接口调用结果
	 */
	public function specialList($id, $cell, $name, $linkmanCell=false, $timeRange=false)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'cell'=>$cell, 'name'=>$name, 'meal'=>'SpecialList_c'];
		if($linkmanCell){
			$imdata['linkman_cell'] = $linkmanCell;
		}
		if($timeRange){
			$imdata['time_range'] = $timeRange;
		}
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode),
		];

		$result = $this->vpost($this->huaxiang, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 特殊名单验证(过滤)
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @param String $linkmanCell 联系人手机号  1.兼容字符串形式，此形式仅能传1个手机号，例："15901110000" ，2.支持数组形式，例：“[15901110000,15901110000,15901110000]”（支持最多输入3个手机号）
	 * @param String $timeRange 时间范围 取值：1-5，单位：年；填入相应数字表示查询最近几年的特殊名单服务，未填或填入其它数字表示默认查询5年
	 * @return Array 接口调用结果
	 */
	public function specialListFilter($id, $cell, $name, $linkmanCell=false, $timeRange=false)
	{	
		$response = $this->specialList($id, $cell, $name, $linkmanCell, $timeRange);
		if(isset($response['success']) && !$response['success']){
			return $response;
		}else if($this->errorNumber($response['data']['code'])!==true){
			return ['success'=>false,'error'=>$response['data']['code'],'message'=>$this->errorNumber($response['data']['code'])];
		}else if(!isset($response['success'])){
			return ['success'=>false,'error'=>'L1001','message'=>'接口查询失败，请联系客服处理'];
		}
		$sensitiveArr = json_decode(file_get_contents('./Application/Admin/Common/json_file/SpecialList_c.json'),true);
		$hit = [];
		foreach ($response['data'] as $key => $value) {
			if(in_array($key,['code','swift_number'])){
				continue;
			}
			if($value=='0'){
				$hit[] = $sensitiveArr[$key]."（本人命中）\n";
			}else if($value=='1'){
				$hit[] = $sensitiveArr[$key]."（一度关系命中）\n";
			}else if($value=='2'){
				$hit[] = $sensitiveArr[$key]."（二度关系命中）\n";
			}
		}
		if(empty($hit)){
			return ['success'=>true,'message'=>'查询成功！无匹配风险值。'];
		}
		return ['success'=>true,'hit'=>$hit,'message'=>'查询成功！'];
	}

	/**
	 * 借贷意向验证
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function loanIntention($id, $cell, $name)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'cell'=>$cell, 'name'=>$name, 'meal'=>'ApplyLoanStr'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode),
		];
		$result = $this->vpost($this->huaxiang, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 借贷意向验证
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function loanIntentionFilter($id, $cell, $name)
	{
		$response = $this->loanIntention($id, $cell, $name);
		if(isset($response['success']) && !$response['success']){
			return $response;
		}else if($this->errorNumber($response['data']['code'])!==true){
			return ['success'=>false,'error'=>$response['data']['code'],'message'=>$this->errorNumber($response['data']['code'])];
		}else if(!isset($response['success'])){
			return ['success'=>false,'error'=>'L1001','message'=>'接口查询失败，请联系客服处理'];
		}
		$sensitiveArr = json_decode(file_get_contents('./Application/Admin/Common/json_file/ApplyLoanStr.json'),true);
		if($response['data']['flag_applyloanstr']=='1'){
			$hit = [];
			foreach ($response['data'] as $key => $value) {
				if(in_array($key,['code','swift_number','flag_applyloanstr'])){
					continue;
				}
				if($value=='0'){
					$hit[] = $sensitiveArr[$key].'（其他非银机构有申请，次数不明）';
				}else if($value>'0'){
					$hit[] = $sensitiveArr[$key].'（次数：'.$value.'）';
				}
			}
			if(empty($hit)){
				return ['success'=>true,'message'=>'查询成功！无信贷申请记录。'];
			}
		}else if($response['data']['flag_applyloanstr']=='0'){
			return ['success'=>true,'message'=>'无信贷申请记录。'];
		}else if($response['data']['flag_applyloanstr']=='98'){
			return ['success'=>false,'message'=>'用户输入信息不足！'];
		}else if($response['data']['flag_applyloanstr']=='99'){
			return ['success'=>false,'message'=>'查询系统异常，请联系客服处理！'];
		}
		return ['success'=>true,'hit'=>$hit,'message'=>'查询成功！'];
	}

	/**
	 * 实名信息验证
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @param String $linkmanCell 联系人手机号
	 * @param String $telHome 家庭座机号
	 * @param String $homeAddr 家庭地址
	 * @return Array 接口调用结果
	 */
	public function realNameInfo($id, $cell, $name, $linkmanCell=false, $telHome=false, $homeAddr=false) 
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'cell'=>$cell, 'name'=>$name, 'meal'=>'InfoRelation'];
		if($linkmanCell){
			$imdata['linkman_cell'] = $linkmanCell;
		}
		if($telHome){
			$imdata['tel_home'] = $telHome;
		}
		if($homeAddr){
			$imdata['home_addr'] = $homeAddr;
		}
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode),
		];
		$result = $this->vpost($this->huaxiang, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 实名信息验证
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @param String $linkmanCell 联系人手机号
	 * @param String $telHome 家庭座机号
	 * @param String $homeAddr 家庭地址
	 * @return Array 接口调用结果
	 */
	public function realNameInfoFilter($id, $cell, $name, $linkmanCell=false, $telHome=false, $homeAddr=false)
	{
		$response = $this->realNameInfo($id, $cell, $name);
		if(isset($response['success']) && !$response['success']){
			return $response;
		}else if($this->errorNumber($response['data']['code'])!==true){
			return ['success'=>false,'error'=>$response['data']['code'],'message'=>$this->errorNumber($response['data']['code'])];
		}else if(!isset($response['success'])){
			return ['success'=>false,'error'=>'L1001','message'=>'接口查询失败，请联系客服处理'];
		}
		$sensitiveArr = json_decode(file_get_contents('./Application/Admin/Common/json_file/InfoRelation.json'),true);
		if($response['data']['flag_inforelation']=='1'){
			$hit = [];
			$is_a = ['0'=>'否','1'=>'是'];
			foreach ($response['data'] as $key => $value) {
				if(in_array($key,['code','swift_number','flag_inforelation'])){
					continue;
				}
				if(strpos($key,'_reabnormal')){
					$hit[] = $sensitiveArr[$key].' （'.$is_a[$value].'）';
				}else if(strpos($key,'_days')){
					$hit[] = $sensitiveArr[$key].' （'.$value.'天）';
				}else if(strpos($key,'_cnt')){
					$hit[] = $sensitiveArr[$key].' （'.$value.'个）';
				}
			}
			if(empty($hit)){
				return ['success'=>true,'message'=>'无信息记录。'];
			}
			return ['success'=>true,'hit'=>$hit,'message'=>'查询成功！'];
		}else if($response['data']['flag_inforelation']=='0'){
			return ['success'=>true,'message'=>'无信息记录。'];
		}else if($response['data']['flag_inforelation']=='98'){
			return ['success'=>false,'message'=>'用户输入信息不足！'];
		}else if($response['data']['flag_inforelation']=='99'){
			return ['success'=>false,'message'=>'查询系统异常，请联系客服处理！'];
		}
	}

	/**
	 * 法院被执行人—个人版
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function courtExecution($id, $cell, $name)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'cell'=>$cell, 'name'=>$name, 'meal'=>'Execution'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode),
		];
		$result = $this->vpost($this->huaxiang, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 法院被执行人—个人版
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function courtExecutionFilter($id, $cell, $name)
	{
		$response = $this->courtExecution($id, $cell, $name);
		if(isset($response['success']) && !$response['success']){
			return $response;
		}else if($this->errorNumber($response['data']['code'])!==true){
			return ['success'=>false,'error'=>$response['data']['code'],'message'=>$this->errorNumber($response['data']['code'])];
		}else if(!isset($response['success'])){
			return ['success'=>false,'error'=>'L1001','message'=>'接口查询失败，请联系客服处理'];
		}

		$sensitiveArr = json_decode(file_get_contents('./Application/Admin/Common/json_file/Execution.json'),true);

		if($response['data']['flag_execution']=='1'){
			$hit = [];
			foreach ($response['data'] as $key => $value) {
				if(in_array($key,['code','swift_number','flag_execution'])){
					continue;
				}
				if(strpos($key,'_time')||strpos($key,'_posttime')){
					$hit[] = $sensitiveArr[$key].'：'.date('Y-m-d H:i',$value);
				}else{
					$hit[] = $sensitiveArr[$key].'：'.$value;
				}
			}
			if(empty($hit)){
				return ['success'=>true,'message'=>'无个人信息记录。'];
			}
			return ['success'=>true,'hit'=>$hit,'message'=>'查询成功！'];
		}else if($response['data']['flag_execution']=='0'){
			return ['success'=>true,'message'=>'无个人信息记录。'];
		}else if($response['data']['flag_execution']=='98'){
			return ['success'=>false,'message'=>'用户输入信息不足！'];
		}else if($response['data']['flag_execution']=='99'){
			return ['success'=>false,'message'=>'查询系统异常，请联系客服处理！'];
		}
	}

	/**
	 * 支付消费信息识别—月度版
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @param String $bankId 银行卡号
	 * @return Array 接口调用结果
	 */
	public function payConsumption($id, $cell, $name, $bankId)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'cell'=>$cell, 'name'=>$name, 'bank_id'=>$bankId, 'meal'=>'PayConsumption'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode)
		];
		$result = $this->vpost($this->huaxiang, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 支付消费信息识别—月度版
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @param String $bankId 银行卡号
	 * @return Array 接口调用结果
	 */
	public function payConsumptionFilter($id, $cell, $name, $bankId)
	{
		$response = $this->payConsumption($id, $cell, $name, $bankId);
		if(isset($response['success']) && !$response['success']){
			return $response;
		}else if($this->errorNumber($response['data']['code'])!==true){
			return ['success'=>false,'error'=>$response['data']['code'],'message'=>$this->errorNumber($response['data']['code'])];
		}else if(!isset($response['success'])){
			return ['success'=>false,'error'=>'L1001','message'=>'接口查询失败，请联系客服处理'];
		}
		$sensitiveArr = json_decode(file_get_contents('./Application/Admin/Common/json_file/PayConsumption.json'),true);
		if($response['data']['flag_payConsumption']=='1'){
			$hit = [];
			foreach ($response['data'] as $key => $value) {
				if(in_array($key,['code','swift_number','flag_payConsumption'])){
					continue;
				}
				$hit[] = $sensitiveArr[$key].'：'.$value;
			}
			if(empty($hit)){
				return ['success'=>true,'message'=>'无个人信息记录。'];
			}
			return ['success'=>true,'hit'=>$hit,'message'=>'查询成功！'];
		}else if($response['data']['flag_payConsumption']=='0'){
			return ['success'=>true,'message'=>'无个人信息记录。'];
		}else if($response['data']['flag_payConsumption']=='98'){
			return ['success'=>false,'message'=>'用户输入信息不足！'];
		}else if($response['data']['flag_payConsumption']=='99'){
			return ['success'=>false,'message'=>'查询系统异常，请联系客服处理！'];
		}
	}

	/**
	 * 自然人识别
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function badInfo($id, $cell, $name)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'cell'=>$cell, 'name'=>$name, 'meal'=>'BadInfo'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode)
		];
		$result = $this->vpost($this->trinity_force, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 手机三要素简版—移动联通电信
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function phoneEssential($id, $cell, $name)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'cell'=>$cell, 'name'=>$name, 'meal'=>'TelCheck_s'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode)
		];
		$result = $this->vpost($this->trinity_force, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 学历查询
	 * @param String $id 身份证号
	 * @param String $name 姓名
	 * @param String $cell 手机号
	 * @return Array 接口调用结果
	 */
	public function educationInquiries($id, $name, $cell=false)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'name'=>$name, 'meal'=>'EduLevel'];
		if($cell){
			$imdata['cell'] = $cell;
		}
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode)
		];
		$result = $this->vpost($this->haina, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 身份证二要素验证
	 * @param String $id 身份证号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function identityVerific($id, $name)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'name'=>$name, 'meal'=>'IdTwo_z'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode)
		];
		$result = $this->vpost($this->haina, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 身份证二要素验证及照片查询
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function identityVerificAndFind($id, $cell, $name)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'cell'=>$cell, 'name'=>$name, 'meal'=>'IdTwo_photo'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode)
		];
		$result = $this->vpost($this->haina, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}


	/**
	 * 银行卡四要素验证
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @param String $bankId 银行卡号
	 * @return Array 接口调用结果
	 */
	public function bankFourPro($id, $cell, $name, $bankId)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'cell'=>$cell, 'name'=>$name, 'bank_id'=>$bankId, 'meal'=>'BankFourPro'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode)
		];
		$result = $this->vpost($this->trinity_force, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 手机在网时长—移动联通电信
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function telPeriod($id,$cell,$name)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id,'cell'=>$cell,'name'=>$name,'meal'=>'TelPeriod'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode)
		];
		$result = $this->vpost($this->trinity_force, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 手机在网状态—移动联通电信
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function telStatus($id=false,$cell,$name=false)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id,'cell'=>$cell,'name'=>$name,'meal'=>'TelStatus'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode)
		];
		$result = $this->vpost($this->trinity_force, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 百融风险识别
	 * @param String $id 身份证号
	 * @param String $cell 手机号
	 * @param String $name 姓名
	 * @return Array 接口调用结果
	 */
	public function scorelargecashv1($id, $cell, $name)
	{
		$islogin = $this->islogin();
		if($islogin!==true){
			return $islogin;
		}
		$imdata = ['id'=>$id, 'cell'=>$cell, 'name'=>$name, 'meal'=>'scorelargecashv1'];
		$jsonData = json_encode($imdata);
		$data_post = [
			'apiCode'=>$this->apicode,
			'tokenid'=>$this->token,
			'jsonData'=>$jsonData,
			'checkCode'=>md5($jsonData.$this->checkcode)
		];
		$result = $this->vpost($this->huaxiang, $data_post, 'array');
		return ['success'=>true,'data'=>$result];
	}

	/**
	 * 错误码
	 */
	public function errorNumber($n)
	{
		switch($n){
			case '00':
			case '600000':
			    return true;

			case '100001':
			    return '程序错误，请联系客服处理';

			case '100004':
			    return '商户不存在或用户名错误';
			    
			case '100005':
			    return '登陆密码不正确';

			case '100006':
			    return '请求参数格式错误';
			
			case '100011':
			    return '账户停用，请联系客服处理';

			case '1000017':
			    return '并发过大，请联系客服处理';
		
			case '200000':
			    return '请求超时，请稍后重试';

			case '100002':
			    return '匹配结果为空，查询用户信息未命中数据库';

			case '100003':
			    return '必选 key 值缺失或不合法，请联系客服处理';

			case '100007':
			    return 'Tokenid 过期，请联系客服处理';

			case '100008':
			    return '客户端 api 调用码不能为空，请联系客服处理';

			case '100009':
			    return 'IP 地址错误，请联系客服处理';

			case '100010':
			    return '超出当天访问次数';
		
			case '100012':
			    return '请求套餐为空，请联系客服处理';

			case '1000015':
			    return '请求参数其他错误，请联系客服处理';

			case '1000016':
			    return '捕获请求 json 异常，无法解析的错误，请联系客服处理';

			case '600001':
			    return '参数错误，请联系客服处理';

			case '600002':
			    return '其他错误，请联系客服处理';

			case '600003':
			    return '无该接口查询权限，请联系客服处理';

			case '600004':
			    return '无该模块查询权限，请联系客服处理';

			case '600005':
			    return '操作失败，请联系客服处理';

			case '600006':
			    return '接口查询次数已用完，请联系客服处理';

			default:
			    return '接口查询失败，请联系客服处理';
		}
	}

	/**
     * 模拟post获取内容函数
     */
    private function vpost($url, $data, $dataType=false, $timeout= 30) 
    {
        $ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE;
	    $ch = curl_init();
	    $opt = [
              CURLOPT_URL             => $url,
              CURLOPT_POST            => 1,
              CURLOPT_HEADER          => 0,
              CURLOPT_POSTFIELDS      => http_build_query($data),
              CURLOPT_RETURNTRANSFER  => 1,
              CURLOPT_TIMEOUT         => $timeout
        ];
	    if ($ssl) {
	        $opt[CURLOPT_SSL_VERIFYHOST] = FALSE;
	        $opt[CURLOPT_SSL_VERIFYPEER] = FALSE;
	    }
	    curl_setopt_array($ch, $opt);
	    // $err_code = curl_errno($ch);
	    $res = curl_exec($ch);
	    curl_close($ch);
        switch (strtoupper($dataType)) {
        	case 'JSON':
        	    // 返回JSON数据格式到客户端 包含状态信息
        		header('Content-Type:application/json; charset=utf-8');
                return json_encode($res);

        	case 'XML'  :
                // 返回xml格式数据
                header('Content-Type:text/xml; charset=utf-8');
                return xml_encode($res);

            case 'JSONP':
                // 返回JSON数据格式到客户端 包含状态信息
                header('Content-Type:application/json; charset=utf-8');
                $handler  =   isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
                return $handler.'('.json_encode($res).');';

            case 'EVAL' :
                // 返回可执行的js脚本
                header('Content-Type:text/html; charset=utf-8');
                return $res;

            case 'ARRAY':
                return json_decode($res,true);

        	default:
        		return $res;
        }
    }
}